package com.fhj.utils;


public class CalculatorDistance {
	
	private static  final  double EARTH_RADIUS=6378.137;
	
	private static double rad(double d){
		return d*Math.PI/180.0;
	}
	
	/**
	 * 根据两地的经纬度计算这两点之间的距离
	 * @param locLatitude     目前所处位置的经度
	 * @param locLongitude	 目前所处位置的纬度
	 * @param latitude			 目标经度
	 * @param longitude		 目标纬度
	 * @return   两地之间的距离
	 */
	public static double calculate( double latitude1,double longitude1, double latitude2,  
			   double longitude2) {  
		  double Lat1 = rad(latitude1);  
		  double Lat2 = rad(latitude2);  
		  double a = Lat1 - Lat2;  
		 double b = rad(longitude1) - rad(longitude2);  
		  double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)  
		    + Math.cos(Lat1) * Math.cos(Lat2)  
		    * Math.pow(Math.sin(b / 2), 2)));  
		  s = s * EARTH_RADIUS;  
		  s = Math.round(s * 10000) / 10000;  
		  return s;  
		 } 


}
